package cn.cj.erp.common.annotation;

import cn.cj.erp.common.enums.SearchType;

import java.lang.annotation.*;

/**
 * 搜索字段注解，用于生成Mybatis-Plus搜索条件
 *
 * @author 陈建
 * @version JDK 8
 * @date 2024/8/1
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Search {
    /** 条件操作类型 */
    SearchType type() default SearchType.EQ;

    /** 字段名称(数据库，如MySQL中的字段名) */
    String fieldName() default "";

    /** apply 语句，使用`{}`充当占位符 */
    String apply() default "";

    /** 是否默认排序字段，默认排序字段只支持一个，若存在多个会抛出异常 */
    boolean defaultSortField() default false;

    /** 默认排序字段，是否升序排序 */
    boolean defaultSortAsc() default false;
}